<!DOCTYPE html>

<html lang="zh-CN">

<head>
  
  <title>正则表达式 - lingqu&#39;blog</title>
  <meta charset="UTF-8">
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
  
  

  <link rel="shortcut icon" href="/favicon.ico" type="image/png" />
  <meta name="description" content="字符描述： \：将下一个字符标记为特殊字符或字面值。例如 “n “与字符 “n “匹配。 “\n “与换行符匹配。序列 “\ “与 “\ “匹配， “( “与 “( “匹配。">
<meta property="og:type" content="article">
<meta property="og:title" content="正则表达式">
<meta property="og:url" content="https://lingqu.github.io/2021/08/17/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/index.html">
<meta property="og:site_name" content="lingqu&#39;blog">
<meta property="og:description" content="字符描述： \：将下一个字符标记为特殊字符或字面值。例如 “n “与字符 “n “匹配。 “\n “与换行符匹配。序列 “\ “与 “\ “匹配， “( “与 “( “匹配。">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2021-08-17T01:59:36.000Z">
<meta property="article:modified_time" content="2021-08-17T02:04:44.215Z">
<meta property="article:author" content="lingqu">
<meta name="twitter:card" content="summary">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/combine/npm/highlight.js@9.15.8/styles/atom-one-dark.css,npm/justifiedGallery@3.8.1/dist/css/justifiedGallery.min.css,gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css,npm/hexo-theme-nexmoe@latest/source/lib/mdui_043tiny/css/mdui.css,npm/hexo-theme-nexmoe@latest/source/lib/iconfont/iconfont.css?v=233" crossorigin>
  <link rel="stylesheet" href="/css/style.css?v=1629344957171">
  
  <link rel="stylesheet" href="/css/style.css?v=1629344957171">
  <link rel="stylesheet" href="/lib/iconfont/iconfont.css?v=1629344957171">
<meta name="generator" content="Hexo 5.4.0"></head>

<body class="mdui-drawer-body-left">
  
  <div id="nexmoe-background">
    <div class="nexmoe-bg" style="background-image: url(http://pic1.win4000.com/wallpaper/f/5922779a761cd.jpg)"></div>
    <div class="mdui-appbar mdui-shadow-0">
      <div class="mdui-toolbar">
        <a mdui-drawer="{target: '#drawer', swipe: true}" title="menu" class="mdui-btn mdui-btn-icon mdui-ripple"><i class="mdui-icon nexmoefont icon-menu"></i></a>
        <div class="mdui-toolbar-spacer"></div>
        <!--<a href="javascript:;" class="mdui-btn mdui-btn-icon"><i class="mdui-icon material-icons">search</i></a>-->
        <a href="/" title="lingqu" class="mdui-btn mdui-btn-icon"><img src="https://inews.gtimg.com/newsapp_bt/0/13492515314/1000" alt="lingqu"></a>
       </div>
    </div>
  </div>
  <div id="nexmoe-header">
      <div class="nexmoe-drawer mdui-drawer" id="drawer">
    <div class="nexmoe-avatar mdui-ripple">
        <a href="/" title="lingqu">
            <img src="https://inews.gtimg.com/newsapp_bt/0/13492515314/1000" alt="lingqu" alt="lingqu">
        </a>
    </div>
    <div class="nexmoe-count">
        <div><span>文章</span>8</div>
        <div><span>标签</span>3</div>
        <div><span>分类</span>0</div>
    </div>
    <div class="nexmoe-list mdui-list" mdui-collapse="{accordion: true}">
        
        <a class="nexmoe-list-item mdui-list-item mdui-ripple" href="/" title="回到首页">
            <i class="mdui-list-item-icon nexmoefont icon-home"></i>
            <div class="mdui-list-item-content">
                回到首页
            </div>
        </a>
        
        <a class="nexmoe-list-item mdui-list-item mdui-ripple" href="/about.html" title="关于博客">
            <i class="mdui-list-item-icon nexmoefont icon-info-circle"></i>
            <div class="mdui-list-item-content">
                关于博客
            </div>
        </a>
        
        <a class="nexmoe-list-item mdui-list-item mdui-ripple" href="/PY.html" title="我的朋友">
            <i class="mdui-list-item-icon nexmoefont icon-unorderedlist"></i>
            <div class="mdui-list-item-content">
                我的朋友
            </div>
        </a>
        
    </div>
    <aside id="nexmoe-sidebar">
  
  <div class="nexmoe-widget-wrap">
    <div class="nexmoe-widget nexmoe-search">
        <form id="search_form" action_e="https://cn.bing.com/search?q=site:nexmoe.com" onsubmit="return search();">
            <label><input id="search_value" name="q" type="search" placeholder="搜索"></label>
        </form>
    </div>
</div>
  
  <div class="nexmoe-widget-wrap">
    <div class="nexmoe-widget nexmoe-social">
        <a class="mdui-ripple" href="https://jq.qq.com/?_wv=1027&k=5CfKHun" target="_blank" mdui-tooltip="{content: 'QQ群'}" style="color: rgb(249, 174, 8);background-color: rgba(249, 174, 8, .1);">
            <i class="nexmoefont icon-QQ"></i>
        </a><a class="mdui-ripple" href="https://space.bilibili.com/51207190" target="_blank" mdui-tooltip="{content: '哔哩哔哩'}" style="color: rgb(231, 106, 141);background-color: rgba(231, 106, 141, .15);">
            <i class="nexmoefont icon-bilibili"></i>
        </a><a class="mdui-ripple" href="https://github.com/lingqu/" target="_blank" mdui-tooltip="{content: 'GitHub'}" style="color: rgb(25, 23, 23);background-color: rgba(25, 23, 23, .15);">
            <i class="nexmoefont icon-github"></i>
        </a>
    </div>
</div>
  
  

  
  
  <div class="nexmoe-widget-wrap">
    <div id="randomtagcloud" class="nexmoe-widget tagcloud nexmoe-rainbow">
      <a href="/tags/C/" style="font-size: 20px;">C++</a> <a href="/tags/JavaScript/" style="font-size: 10px;">JavaScript</a> <a href="/tags/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/" style="font-size: 20px;">数据结构</a>
    </div>
    
  </div>

  
</aside>
    <div class="nexmoe-copyright">
        &copy; 2021 lingqu
        Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>
        & <a href="https://github.com/theme-nexmoe/hexo-theme-nexmoe" target="_blank">Nexmoe</a>
        
    </div>
</div><!-- .nexmoe-drawer -->
  </div>
  <div id="nexmoe-content">
    <div class="nexmoe-primary">
        <div class="nexmoe-post">

  <article>
    
        <div class="nexmoe-post-cover" style="padding-bottom: 45.83333333333333%;"> 
            <img data-src="http://pic1.win4000.com/wallpaper/f/5922779a761cd.jpg" data-sizes="auto" alt="正则表达式" class="lazyload">
            <h1>正则表达式</h1>
        </div>
    
    
    <div class="nexmoe-post-meta nexmoe-rainbow" style="margin:10px 0!important;">
    <a><i class="nexmoefont icon-calendar-fill"></i>2021年08月17日</a>
    <a><i class="nexmoefont icon-areachart"></i>911 字</a>
    <a><i class="nexmoefont icon-time-circle-fill"></i>大概 4 分钟</a>
</div>

    

    <h1 id="字符描述："><a href="#字符描述：" class="headerlink" title="字符描述："></a>字符描述：</h1><ul>
<li><p>\：将下一个字符标记为特殊字符或字面值。例如 “n “与字符 “n “匹配。 “\n “与换行符匹配。序列 “\ “与 “\ “匹配， “( “与 “( “匹配。</p>
<span id="more"></span></li>
<li><p>^ ：匹配输入的开始位置。</p>
</li>
<li><p>$ ：匹配输入的结尾。</p>
</li>
<li><p>* ：匹配前一个字符零次或几次。例如， “zo* “可以匹配 “z “、 “zoo “。</p>
</li>
<li><p>+ ：匹配前一个字符一次或多次。例如， “zo+ “可以匹配 “zoo “,但不匹配 “z “。</p>
</li>
<li><p>? ：匹配前一个字符零次或一次。例如， “a?ve? “可以匹配 “never “中的 “ve “。</p>
</li>
<li><p>.：匹配换行符以外的任何字符。</p>
</li>
<li><p>(pattern) 与模式匹配并记住匹配。匹配的子字符串可以从作为结果的 Matches 集合中使用 Item [0]…[n]取得。如果要匹配括号字符(和 )，可使用 “( “ 或 “) “。</p>
</li>
<li><p>x|y：匹配 x 或 y。例如 “z|food “ 可匹配 “z “ 或 “food “。 “(z|f)ood “ 匹配 “zoo “ 或 “food “。</p>
</li>
<li><p>{n}：n 为非负的整数。匹配恰好n次。例如， “o{2} “ 不能与 “Bob 中的 “o “ 匹配，但是可以与 “foooood “中的前两个o匹配。</p>
</li>
<li><p>{n,} ：n 为非负的整数。匹配至少n次。例如， “o{2,} “不匹配 “Bob “中的 “o “，但是匹配 “foooood “中所有的o。 “o{1,} “等价于 “o+ “。 “o{0,} “等价于 “o* “。</p>
</li>
<li><p>{n,m} ：m 和 n 为非负的整数。匹配至少 n 次，至多 m 次。例如， “o{1,3} “ 匹配 “fooooood “中前三个o。 “o{0,1} “等价于 “o? “。</p>
</li>
<li><p>[xyz] ：一个字符集。与括号中字符的其中之一匹配。例如， “[abc] “ 匹配 “plain “中的 “a “。</p>
</li>
<li><p>[^xyz] ：一个否定的字符集。匹配不在此括号中的任何字符。例如， “[^abc] “ 可以匹配 “plain “中的 “p “.</p>
</li>
<li><p>[a-z] ：表示某个范围内的字符。与指定区间内的任何字符匹配。例如， “[a-z] “匹配 “a “与 “z “之间的任何一个小写字母字符。</p>
</li>
<li><p>[^m-z] ：否定的字符区间。与不在指定区间内的字符匹配。例如， “[m-z] “与不在 “m “到 “z “之间的任何字符匹配。</p>
</li>
<li><p>\b ：与单词的边界匹配，即单词与空格之间的位置。例如， “er\b “ 与 “never “中的 “er “匹配，但是不匹配 “verb “中的 “er “。</p>
</li>
<li><p>\B ：与非单词边界匹配。 “ea*r\B “与 “never early “中的 “ear “匹配。</p>
</li>
<li><p>\d ：与一个数字字符匹配。等价于[0-9]。</p>
</li>
<li><p>\D ：与非数字的字符匹配。等价于【^0-9】。</p>
</li>
<li><p>\f ：与分页符匹配。</p>
</li>
<li><p>\n ：与换行符字符匹配。</p>
</li>
<li><p>\r ：与回车字符匹配。</p>
</li>
<li><p>\s ：与任何白字符匹配，包括空格、制表符、分页符等。等价于 “[ \f\n\r\t\v] “。</p>
</li>
<li><p>\S ：与任何非空白的字符匹配。等价于 “【^ \f\n\r\t\v】 “。</p>
</li>
<li><p>\t ：与制表符匹配。</p>
</li>
<li><p>\v ：与垂直制表符匹配。</p>
</li>
<li><p>\w ：与任何单词字符匹配，包括下划线。等价于 “[A-Za-z0-9_] “。</p>
</li>
<li><p>\W ：与任何非单词字符匹配。等价于 ”【^A-Za-z0-9_】 “。</p>
</li>
<li><p>\num ：匹配 num个，其中 num 为一个正整数。引用回到记住的匹配。例如， “(.)\1 “匹配两个连续的相同的字符。</p>
</li>
<li><p>\n：匹配 n，其中n 是一个八进制换码值。八进制换码值必须是 1, 2 或 3 个数字长。<br>例如， “\11 “ 和 “\011 “ 都与一个制表符匹配。 “\0011 “等价于 “\001 “ 与 “1 “。八进制换码值不得超过 256。否则，只有前两个字符被视为表达式的一部分。允许在正则表达式中使用ASCII码。</p>
</li>
<li><p>\xn：匹配n，其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。例如， “\x41 “匹配 “A “。 “\x041 “等价于 “\x04 “ 和 “1 “。允许在正则表达式中使用 ASCII 码。</p>
</li>
</ul>

  </article>

  
    
  <div class="nexmoe-post-copyright">
    <strong>本文作者：</strong>lingqu<br>
    <strong>本文链接：</strong><a href="https://lingqu.github.io/2021/08/17/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/" title="https:&#x2F;&#x2F;lingqu.github.io&#x2F;2021&#x2F;08&#x2F;17&#x2F;%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&#x2F;" target="_blank" rel="noopener">https:&#x2F;&#x2F;lingqu.github.io&#x2F;2021&#x2F;08&#x2F;17&#x2F;%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&#x2F;</a><br>
    
      <strong>版权声明：</strong>本文采用 <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/cn/deed.zh" target="_blank">CC BY-NC-SA 3.0 CN</a> 协议进行许可
    
  </div>


  
  
  <div class="nexmoe-post-meta nexmoe-rainbow">
    
    
</div>

  <div class="nexmoe-post-footer">
    <section class="nexmoe-comment">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitalk@1.5.0/dist/gitalk.min.css">
<div id="gitalk"></div>
<script src="https://cdn.jsdelivr.net/npm/gitalk@1.5.0/dist/gitalk.min.js"></script>
<script type="text/javascript">
    var gitalk = new Gitalk({
        clientID: '80b2453b6d5f37ad6225',
        clientSecret: '43e99fa852795c9a7b3eb924b2558c64b84bbdeb',
        id: window.location.pathname,
        repo: 'nexmoe.github.io',
        owner: 'nexmoe',
        admin: 'nexmoe'
    })
    gitalk.render('gitalk')
</script>
</section>
  </div>
</div>
        <div class="nexmoe-post-right">
          <div class="nexmoe-fixed">
            <div class="nexmoe-tool"> 
              
                
              
              <a href="#nexmoe-content" class="toc-link" aria-label="回到顶部" title="top"><button class="mdui-fab mdui-ripple"><i class="nexmoefont icon-caret-top"></i></button></a>
            </div>
          </div>
        </div>
    </div>
  </div>
  <script src="https://cdn.jsdelivr.net/combine/npm/lazysizes@5.1.0/lazysizes.min.js,gh/highlightjs/cdn-release@9.15.8/build/highlight.min.js,npm/mdui@0.4.3/dist/js/mdui.min.js?v=1"></script>
<script>
	hljs.initHighlightingOnLoad();
</script>

<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>


<script src="https://cdn.jsdelivr.net/gh/xtaodada/xtaodada.github.io@0.0.2/copy.js"></script>
 

<script src="/js/app.js?v=1629344957171"></script>

<script src="https://cdn.jsdelivr.net/npm/justifiedGallery@3.8.1/dist/js/jquery.justifiedGallery.min.js"></script>
<script>
	$(".justified-gallery").justifiedGallery({
		rowHeight: 160,
		margins: 10,
	});
</script>

  





</body>

</html>
